System and Method for Managing Events Associated with the Detection of Wireless Devices

ABSTRACT

The disclosed embodiments provide a system and method for managing events associated with the detection of wireless devices. The disclosed embodiments utilize a residential wireless access point for detecting the signal transmitted by a wireless device. A user configures a wireless device detection program to perform specified events in response to the detection and/or absence of a wireless device. The disclosed embodiments may provide home automation functions, home security functions, and/or provide child monitoring features.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.14/048,103, filed Oct. 8, 2013 by Jeffrey M. Sweeney et al. entitled,“System and Method for Managing Events Associated with the Detection ofWireless Devices” (attorney docket no. 024777.0510N1US), which is aContinuation of U.S. patent application Ser. No. 12/256,337 (Now U.S.Pat. No. 8,554,214), filed Oct. 22, 2008 by Jeffrey M. Sweeney et al.entitled “System and Method For Managing Events Associated With TheDetection Of Wireless Devices” (attorney docket no. 024777.0510PTUS),both of which is hereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The principles of the present invention relate to computers, and morespecifically, to managing events associated with the detection ofwireless devices.

2. Description of the Related Art

Mobile devices, such as, cellular phones and personal digital assistants(PDAs), are often configured with short range wireless transmitters toenable wireless communication over a network. The signals transmitted bythe wireless transmitters may be detected by a base station when thedevice is within the proximity of the base station. A base station is aradio receiver/transmitter that serves as the hub of a local wirelessnetwork and may also be the gateway to a wired network.

SUMMARY

According to one embodiment of the invention, a method for managingevents associated with the detection of a wireless device is presented.The method includes receiving data from one of a plurality ofresidential wireless access points, the plurality of residentialwireless access points being located at different residential locations.The method identifies from the data an identifier associated with aresidential wireless access point and a wireless device that is detectedby the residential wireless access point. The method determines whetherthe wireless device is registered with the residential wireless accesspoint. In response to the wireless device being registered with theresidential wireless access point, the method performs a user-specifiedevent associated with the wireless device being detected by theresidential wireless access point.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present application, theobjects and advantages thereof, reference is now made to the followingdescriptions taken in conjunction with the accompanying drawings, inwhich:

FIG. 1 depicts a environment in which the illustrative embodiments maybe implemented;

FIG. 2 is an embodiment of a computing device in which the illustrativeembodiments may be implemented;

FIG. 3 is an embodiment of a wireless device detection program formanaging events associated with the detection of wireless devices;

FIG. 4 is an embodiment of a graphical user interface for managingevents associated with a wireless detection program;

FIG. 5 is an embodiment of a graphical user interface for selectingevents associated with a wireless detection program;

FIG. 6 is an embodiment of a data table for managing events associatedwith a wireless detection program;

FIG. 7 is an embodiment of a process for executing an event associatedwith the detection of a wireless device; and

FIG. 8 is another embodiment of a process for executing an eventassociated with the detection of a wireless device.

DETAILED DESCRIPTION OF THE DRAWINGS

The disclosed embodiments provide a system and method for managingevents associated with the detection of a wireless device. The disclosedembodiments utilize a residential wireless access point for detectingthe signal transmitted by a wireless device, such as, but not limitedto, a cellular phone and/or a mobile computing device that utilizes awireless protocol for transmitting and receiving data. As will befurther described, the residential wireless access point is associatedwith a user. The user configures a wireless device detection programover a network to perform specified events in response to the detectiona wireless device. For example, in some embodiments, wireless devicedetection program may provide, but is not limited to, home automationfunctions, home security functions, and/or provide child monitoringfeatures.

With reference now to the figures and in particular with reference toFIGS. 1-2, exemplary diagrams of data processing environments areprovided in which illustrative embodiments may be implemented. It shouldbe appreciated that FIGS. 1-2 are only exemplary and are not intended toassert or imply any limitation with regard to the environments in whichdifferent embodiments may be implemented. Many modifications to thedepicted environments may be made.

FIG. 1 depicts a network environment 100 in which the illustrativeembodiments may be implemented. Network environment 100 includes network110, which is the medium used to provide communications links betweenvarious devices and computers, such as, but not limited to, residentialwireless access point 102, wireless devices 104, computing device 106,electronic device 135, computing devices 120, servers 130, and server190 together within network environment 100. Network 110 may includeconnections 180 a-180 n, such as, but is not limited to, wire, wirelesscommunication links, or fiber optic cables to each of the devices.

Residential wireless access point 102 is a wireless access point locatedin a residential location, such as, but not limited to, residentiallocation 108. Residential location 108 may be any type of buildingincluding, but not limited to, a house, a residential complex, and/or aschool building. Residential wireless access point 102 may be used toconnect wired and wireless devices, such as, but not limited to,computing device 106 and wireless devices 104 to network 110. In someembodiments, residential wireless access point 102 detects cellularnetwork signals, such as, but not limited to, Global System for MobileCommunications (GSM) and Code Division Multiple Access (CDMA) signalstransmitted by a cellular device. For example, in some embodiments,residential wireless access point 102 may be a femto cell. A femto cellis a device used to improve mobile network coverage in small areas.Femto cells connect locally to mobile phones and similar devices throughtheir normal GSM, CDMA, or UMTS connections, and then route theconnections over a broadband internet connection back to the carrier,bypassing the normal cell towers. In addition, in some embodiments,residential wireless access point 102 may detect other wireless signals,such as, but not limited to, Wi-Fi, and Bluetooth signals and/or otherwireless signals utilizing the Wireless Application Protocol (WAP) forproviding secure data transmission. In addition, network environment 100may include additional residential wireless access points (i.e., aplurality of residential wireless access points) located at differentresidential locations, such as, but not limited to, residential wirelessaccess point 152 located at residential location 150.

Wireless devices 104 may include, but are not limited to, cellularphones, mobile computing device, pagers, two-way radios, smart phones,and/or any other mobile computing device that utilizes a wirelessprotocol for transmitting and receiving data.

Servers 130 may include one or more servers, such as, but not limited toweb servers, database servers, file servers, mail servers, andapplication servers. In addition, computing devices 120 may be, forexample, personal computers, network computers, laptops, personaldigital assistants (PDAs), and/or smart phones. In the depicted example,servers 130 provide data and/or services to computing devices 120 and/orother clients connected to network 110. Network environment 100 mayinclude additional servers, clients, and other devices not shown.

In some embodiments, network 110 is the Internet. The Internet is aglobal system of interconnected computer networks that interchange datausing the standardized Internet Protocol Suite (TCP/IP). The Internetincludes millions of private and public networks that are linked bycopper wires, fiber-optic cables, wireless connections, and othertechnologies. Of course, network 110 may also be implemented as a numberof different types of networks, such as, but not limited to, anintranet, a local area network (LAN), or a wide area network (WAN).

As previously stated, the disclosed embodiments provide a system andmethod for managing events associated with the detection of a wirelessdevice, such as, but not limited to, wireless devices 104. The disclosedembodiments utilize a residential wireless access point, such as, butnot limited to, residential wireless access point 102 for detecting asignal transmitted by wireless devices 104. Residential wireless accesspoint 102 is associated with a user, such as, but not limited to, user140. User 140 configures a wireless device detection program 300 toperform specified events in response to the detection wireless devices104. For example, in some embodiments, user 140 utilizing computingdevice 106 may configure wireless device detection program 300 executingon server 190 over network 110. In some embodiments, wireless devicedetection program 300 may communicate with other data processingsystems, such as, but not limited to, servers 130 to perform theuser-specified event. As an example, in some embodiments, user 140 mayconfigure wireless device detection program 300 to transmit a message,such as, but not limited to, a text message to an electronic device 135in response to residential wireless access point 102 detecting a signalof a wireless device, such as, but not limited to, wireless devices 104.Electronic device 135 may be any type of electronic device including,but not limited to, a cellular/smart phone, a PDA, and/or a computingdevice associated with user 140.

With reference now to FIG. 2, an embodiment of server 190 in which theillustrative embodiments may be implemented is presented. In thisembodiment, server 190 includes communications bus 210, which providescommunications between central processing unit (CPU) 200, memory 206,data storage device 208, input/output (I/O) controllers 214, displayadapter 216, network communications unit 218, audio adapter 220, andcomputer readable media device 222.

CPU 200 executes instructions for software that may be loaded intomemory 206. CPU 200 may be a set of one or more processors or may be amulti-processor core, depending on the particular implementation.Further, CPU 200 may include one or more levels of cache memory, suchas, but not limited to, cache memory 202. Cache memory 202 is used byCPU 200 to store copies of the data from the most frequently used mainmemory locations to reduce the average time to access memory.

Memory 206 is used to retain digital data used for processing. In someembodiments, memory 206 may be a random access memory (RAM). RAM memoryallows the stored data to be accessed in any order as opposed to storagemechanisms, such as tapes and magnetic discs. In addition, memory 206may include any other suitable volatile or non-volatile storage device.

CPU 200 loads computer executable instructions, such as, but not limitedto, wireless device detection program 300 into memory 206 for execution.As will be further described, in some embodiments, wireless devicedetection program 300 may include one or more modules containingcomputer executable instructions for managing events associated with thedetection of a wireless device. In addition, in some embodiments, CPU200 in executing computer executable instructions associated withwireless device detection program 300 may execute instructions forsending and/or retrieving data from one or more computing devices.Further, in some embodiments, CPU 200 may execute in parallel with oneor more processors on the same and/or different computing device inconnection with executing the instructions associated with wirelessdevice detection program 300.

Data storage device 208 may take various forms depending on theparticular implementation. For example, data storage device 208 may be ahard drive, flash memory, rewritable optical disk, rewritable magnetictape, or some combination thereof. The media used by data storage device208 also may be removable, such as, but not limited to, a removable harddrive.

Input/output unit 214 may include one or more of the same and/ordifferent types of data ports used for connecting external devices toserver 190. Input/output unit 214 may include a serial port, a parallelport, an accelerated graphics port, and most commonly a universal serialbus (USB) port. For example, input/output unit 214 may be used toconnect computer peripherals, such as mice, keyboards, PDAs, gamepadsand joysticks, scanners, digital cameras, printers, personal mediaplayers, and flash drives.

Display adapter 216 is used to generate and output images to a display.Display adapter 216 may be a dedicated expansion card that is pluggedinto a slot on the motherboard of server 190 or may a graphicscontroller integrated into the motherboard chipset. In addition, displayadapter 216 may include dedicated memory and one or more processingunits.

Network communications unit 218 provides for communications with otherdata processing systems or devices. In these examples, networkcommunications unit 218 is a network interface card. Modems, cablemodem, Ethernet cards, and wireless interface cards are just a few ofthe currently available types of network interface adapters. Networkcommunications unit 218 may provide communications through the use ofphysical and/or wireless communications links.

Audio adapter 220 facilitates the input and output of audio signals toand from server 190. For example, audio adapter 220 may provide theaudio component for multimedia applications, such as music composition,editing video or audio, presentation/education, and/or entertainment,such as video games. In some embodiments, audio adapter 220 may be anexpansion card added to server 190 to provide for audio capability.

Computer readable media device 222 provides a mechanism for reading andwriting to tangible forms of computer media, such as, but not limitedto, a floppy disc, a compact disc (CD), a digital versatile disc (DVD),and memory cards. For example, CPU 200 may use computer readable mediadevice 222 to read instructions stored on a computer media for executingthe computer executable instructions of wireless device detectionprogram 300.

The different components illustrated for server 190 are not meant toprovide architectural limitations to the manner in which differentembodiments may be implemented. For example, the different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for server190.

FIG. 3 is an embodiment of wireless device detection program 300 formanaging events associated with the detection of a wireless device. Insome embodiments, wireless device detection program 300 includes, amongother modules, a graphical user interface (GUI) 400, wireless deviceregistration module 302, authentication module 305, wireless deviceidentifier module 308, event trigger analyzer module 310, executiontrigger execution module 313.

Graphical user interface 400, as will be further described in FIG. 4,may be used to configure wireless device detection program 300. Forinstance, in some embodiments, user 140 may log into wireless devicedetection program 300 over network 110. Wireless device detectionprogram 300 presents the user with graphical user interface 400. In someembodiments, graphical user interface 400 may be implemented as part ofa web page. Alternatively, in some embodiments, graphical user interface400 may be implemented as a separate software application.

Wireless device registration module 302 may be used for registering aresidential wireless access point associated with user 140, such as, butnot limited to, residential wireless access point 102. In addition, insome embodiments, wireless device registration module 302 may be usedfor configuring events associated with residential wireless access point102 detecting known and/or unknown wireless devices, such as, but notlimited to, wireless devices 104. Further, in some embodiments, wirelessdevice registration module 302 may be used to configure the signaldetection range of residential wireless access point 102. For instance,a user residing in an apartment complex may configure residentialwireless access point 102 to detect wireless signals only within a smallrange.

In addition, in some embodiments, authentication module 305 providessecure access to wireless device detection program 300. For example, insome embodiments, authentication module 305 may be used to authenticatea username and/or password of user 140 prior to allowing user 140 toconfigure and/or access wireless device detection program 300. Thus, anunauthorized user may not alter the configurations settings of aresidential wireless access point associated with another user.

Wireless device identifier module 308 identifies from received data theidentity of a residential wireless access point associated with the dataand wireless devices that are detected the identified residentialwireless access point. In some embodiments, wireless device identifiermodule 308 extracts an identifier, such as, but not limited to, a MediaAccess Control (MAC) address to identify a particular residentialwireless access point, such as, but not limited to, residential wirelessaccess point 102. In addition, wireless device identifier module 308 mayextract an identifier, such as, but not limited to, a MAC address and/orphone number associated with a wireless device detected by residentialwireless access point 102 to identify the particular wireless device. Insome embodiments, wireless device identifier module 308 may communicatewith an external database and/or computing device to correlate theretrieved identifier of a wireless device with the identity of a personassociated with the wireless device. For example, in some embodiments,as will be further described, if a wireless device detected by aparticular residential wireless access point is not registered with theresidential wireless access point (i.e., an unknown wireless device),wireless device identifier module 308 may retrieve subscriber data froma service provider subscriber database (e.g., servers 130) foridentifying a person associated with the wireless device and provide thesubscriber data to a user associated with the residential wirelessaccess point.

Event trigger analyzer module 310 determines whether the conditions forperforming a specified event associated with the detection of one ormore wireless devices are met. For example, as will be furtherdescribed, in some embodiments, a specified event may be associated withthe detection of one or more specified wireless devices. For instance,in some embodiments, a user may specify that a condition, such as, butnot limited to, turning on music occurs when a first wireless device(e.g., teenager's phone) is present and a second wireless device (dad'sphone) is not present.

Execution trigger execution module 313 performs an event in response toa determination by event trigger analyzer module 310 that a condition ismet. Execution trigger execution module 313 may communicate with one ormore computing devices in performing the specified event. For example,in some embodiments, execution trigger execution module 313 maycommunicate with a home automation system to initiate home automatedevents, such as turning on the air conditioner. In another embodiment,execution trigger execution module 313 may communicate with a mailserver for transmitting an email message to a specified user in responseto a condition being met.

In some embodiments, the configuration data associated with wirelessdevice detection program 300, such as, but not limited to, theidentifiers of residential wireless access point 102 and wirelessdevices 104, event trigger conditions, and the data relating toexecuting an event may be stored in one or more local or remote datastore, such as, but not limited to, data store 320. In some embodiments,data store 320 may be accessed by wireless device detection program 300via network 110. In addition, in some embodiments, data store 320 mayinclude one or more data tables, such as, but not limited to, data table600.

FIG. 4 is an embodiment of graphical user interface 400 for managingevents associated with a wireless detection program. In someembodiments, graphical user interface 400 may be presented as part of aweb page and/or may appear as an individual window. Graphical userinterface 400 is provided merely as an illustrative example and does notimply a particular design, implementation, and/or limitation of thedisclosed embodiments. For example, in some embodiments,features/functions may be added, deleted, modified, and/or combined.

In the depicted embodiment, graphical user interface 400 includes awelcome message 402 identifying a user logged into wireless devicedetection program 300. In addition, graphical user interface 400 mayinclude one or more data fields, such as, but not limited to, accesspoint id data field 404, wireless device id data field 407, list ofproximity events 412, list of departure events 417, and list of unknowndevice events 422.

Access point id data field 404 enables a user to manually enter in anidentifier, such as, but not limited to, a MAC address associated with aresidential wireless access point. In some embodiments, access point iddata field 404 may include a pull down menu for enabling a user toselect residential wireless access point previously associated with theuser.

After selecting and/or entering a residential wireless access pointassociated with the user, wireless device id data field 407 enables auser to register an identifier associated with a wireless device that isassociated with the selected/entered residential wireless access point.In some embodiments, a user may add additional wireless devices to beassociated with the selected/entered residential wireless access pointby selecting option add another wireless device 409. In addition, insome embodiments, wireless device id data field 407 may include a pulldown menu to enable a user to select one or more previously registeredwireless devices. For example, a particular event may be associated withthe presence of two or more wireless devices.

In some embodiments, list of proximity events 412 displays a list ofselectable events to perform in response to the detection of thewireless devices specified in wireless device id data field 407 by aresidential wireless access point specified in access point id datafield 404. In some embodiments, list of proximity events 412 may includea set of pre-configured events. Alternatively, in some embodiments, listof proximity events 412 may include user-created events uniquelyassociated with a particular user. In addition, in some embodiments,list of proximity events 412 may enable the user to select one or moreevents. Further, in some embodiments, a submit button 414 may beselected by a user to indicate submission of one or more selectedproximity events of list of proximity events 412. In response toreceiving a selection of submit button 414, wireless device detectionprogram 300 stores the selected proximity events associated with thespecified wireless devices and residential wireless access point to adata table, such as, but not limited to, data table 600.

Similarly, in some embodiments, list of departure events 417 may containa list of selectable events to perform in response to detecting theabsence of the wireless devices specified in wireless device id datafield 407 by a residential wireless access point specified in accesspoint id data field 404. In some embodiments, in determining whether awireless device has departed from the signal range of an residentialwireless access point, wireless device detection program 300 may monitorthe strength of a signal associated with a wireless device to determinewhether the wireless device has moved out of the detection range of aresidential wireless access point in contrast to the wireless devicebeing turned off. For example, if the signal strength of a wirelessdevice is constant for a period of time and then abruptly ends, wirelessdevice detection program 300 may determine that the wireless device hassimply lost power. In contrast, if the signal strength of a detectedwireless device gradually decreases, such as when a wireless devicemoves away from an residential wireless access point, wireless devicedetection program 300 identifies the wireless device has having left thedetection range of the residential wireless access point once the signalof the wireless device is no longer detected by the residential wirelessaccess point. In such cases, wireless device detection program 300performs the user-selected events in list of departure events 417.Again, graphical user interface 400 may include a submit button 419 toenable a user to signify submission of the selected events in list ofdeparture events 417 to wireless device detection program 300.

List of unknown device events 422 may be used to select one or moreuser-created events and/or pre-configured events to perform in responseto the detection of an unknown wireless device by the residentialwireless access point specified in access point id data field 404. Forexample, in some embodiments, if an unknown wireless device is detectedwithin the signal range of residential wireless access point 102, a textmessage may be sent to a specified device associated with a user, suchas, but not limited to, electronic device 135 associated with user 140.Submit button 425 enables a user to signify submission of the selectedevents in list of unknown device events 422 to wireless device detectionprogram 300. Thus, in some embodiments, the disclosed embodiments mayprovide home security functions for residential location 108.

In addition, in some embodiments, wireless device detection program 300may determine an estimated distance of a wireless device from theresidential wireless access point based on the signal strength of thewireless device and provide that information to a user associated withthe residential wireless access point. Further, in some embodiments,wireless device detection program 300 may monitor/log the amount of timea signal of a wireless device is detected.

FIG. 5 is an embodiment of a graphical user interface 500 for selectingevents associated with wireless device detection program 300. Graphicaluser interface 500 includes examples of list of proximity events 412,list of departure events 417, and list of unknown device events 422.Graphical user interface 500 is provided merely as an illustrativeexample and does not imply a particular design, implementation, and/orlimitation of the disclosed embodiments.

In the depicted example, list of proximity events 412 includes aplurality of events associated with the detection of a wireless deviceby a residential wireless access point. For example, list of proximityevents 412 may include features 510 for performing home automationevents, such as, but not limited to, turning on lights in auser-specified location, adjusting air conditioning/heating, and turningon music in response the detection of a specified wireless device. Inaddition, list of proximity events 412 may include monitoring features512 for sending an email and/or text message to a user-specified emailaddress/electronic device. Similarly, list of departure events 417includes a plurality of events 514 associated with the determinationthat a particular wireless device has departed from the signal detectionarea of the residential wireless access point. List of unknown deviceevents 422 includes one or more events 516 to perform in response todetecting the signal of an unknown wireless device by a residentialwireless access point associated with a user. For example, in someembodiments, wireless device detection program 300 may transmit an emailto a user-specified email address and/or sound an alarm system inresponse to detecting an unknown wireless device. List of proximityevents 412, list of departure events 417, and list of unknown deviceevents 422 may include other features not depicted in FIG. 5.

FIG. 6 is an embodiment of a data table 600 for managing eventsassociated with a wireless detection program. Data table 600 may bestored in a data store, such as, but not limited to, data store 320depicted in FIG. 3. Data table 600 illustrates a pictorialrepresentation of a data table and does not imply a particularimplementation, design, and/or architecture. In the depicted embodiment,data table 600 includes a device nickname column 602, residentialwireless access point identifier column 604, wireless device identifiercolumn 606, event conditions column 608, and event column 610.

Device nickname column 602 contains the nicknames of wireless devicesassociated with a user. In some embodiments, a device nickname may bespecified at the time of associating a wireless device with a particularresidential wireless access point. For example, in some embodiments, adevice nickname data field may be added to graphical user interface 400to associate a nickname with particular wireless device. The nicknamesenable a user to easily identify a particular wireless device andconfigure the events to be associated with the wireless device.

Residential wireless access point identifier column 604 contains anidentifier associated with a residential wireless access point, such as,but not limited to, residential wireless access point 102. As depictedin FIG. 6, a user may configure events associated with one or moreresidential wireless access point. For example, in some embodiments, auser may monitor a child's whereabouts by associating a wireless deviceof the child 620 with multiple residential wireless access points, suchas, but not limited to, residential wireless access point 622 andresidential wireless access point 624. For instance, a text message maybe sent to John's father when a wireless device of John's, such as, butnot limited to, John's cell phone is no longer detected by a firstresidential wireless access point (e.g., located at school) and anothertext message may be sent to John's father when John's cell phone isdetected by a second residential wireless access point (e.g., located athome).

Wireless device identifier column 606 contains the identifiers ofwireless devices associated with the corresponding identifiers inresidential wireless access point identifier column 604. In someembodiments, the identifier of a wireless device may be a MAC address628 of a network device associated with the wireless device. Inaddition, in some embodiments, the identifier of a wireless device maybe a telephone number 630 associated with the wireless device. Thewireless device identifier is included in a signal broadcasted by thewireless device and is used by wireless device detection program 300 toidentify a particular device.

Event conditions column 608 contains the conditions to be associated aparticular event. In some embodiments, the condition may be as simple asthe detection of a particular wireless device. However, in someembodiments, the condition may include Boolean logic, such as, but notlimited to, event condition 634. Boolean logic is a system of logic thatutilizes true and false variables for evaluating a condition. As anexample, event condition 634 may be interpreted as detecting John'sphone and not detecting Mom's phone. Further, in some embodiments, anevent condition, such as, but not limited to, event condition 636 may beassociated with the detection and/or absence of one or more wirelessdevices.

Event column 610 contains the events to perform if the correspondingevent conditions are satisfied for the associated wireless devices andresidential wireless access points. In some embodiments, event column610 may include more than one event to perform in response to satisfyingthe event conditions, such as, but not limited to, event 642. Inaddition, in some embodiments, event column 610 may also include, but isnot limited to, a conditional statement (e.g., an if-else-statement),such as, but not limited to, depicted event 640.

With reference now to FIG. 7, an embodiment of a process 700 forexecuting an event associated with the detection of a wireless device ispresented. Process 700 begins by receiving data from one of a pluralityof residential wireless access points at step 702. At step 704, theprocess identifies from the data an identifier associated with aresidential wireless access point. The process identifies from the dataa wireless device that is detected by the residential wireless accesspoint at step 706. The process, at step 708, determines whether thewireless device is registered with the residential wireless accesspoint. In response to the wireless device being registered with theresidential wireless access point, the process, at step 710, performs anevent associated with the wireless device being detected by theresidential wireless access point, with the process terminatingthereafter.

FIG. 8 is another embodiment of a process 800 for executing an eventassociated with the detection of a wireless device. Process 800 beginsby receiving data from a residential wireless access point at step 802.At step 804, the process identifies from the data a wireless device thatis detected by the residential wireless access point. The process, atstep 807, determines whether a change in the prior condition state hasoccurred. For example, a change occurs if a new wireless device isdetected and/or if a previously detected wireless device is no longerdetected. If a change in the prior condition state has not occurred, theprocess terminates.

However, if a change in the prior condition state has occurred, theprocess stores the new condition state (i.e., updates the conditionstate) at step 810. At step 814, the process determines whether any ofthe identified wireless devices are not registered/associated with theresidential wireless access point. If the process determines thatnon-registered/unknown devices have been detected by the residentialwireless access point, the process performs the events associated withthe detection of an unknown device at step 817. In addition, in someembodiments, if the process determines that a non-registered/unknowndevice has been detected by the residential wireless access point, theprocess, at step 818, retrieves subscriber data from a service providersubscriber database for identifying a person associated with the unknownwireless device and provides the subscriber data to a user associatedwith the residential wireless access point.

At step 820, the process determines with whether any of the identifiedwireless devices are registered with the detecting residential wirelessaccess point. If the process determines that none of the identifiedwireless devices are registered with the detecting residential wirelessaccess point (i.e., all detected wireless devices are unknown), theprocess terminates.

However, if the process, at step 820, determines that one or more of theidentified wireless devices are registered with the detectingresidential wireless access point, the process, at step 824, determinesthe condition(s) that best satisfies the detection of the one or more ofthe identified wireless devices. For example, suppose registeredwireless devices A, B, and C are identified/detected by a residentialwireless access point. If a condition matching the detection of B and Cexists and a condition matching the detection of all three exists, thenthe process selects the condition matching the detection of all threewireless devices. In some embodiments, if multiple equal conditionsexist, the process may perform all the matching events associated withthe multiple equal conditions if the multiple matching events do notconflict with one another. Alternatively, in some embodiments, a usermay assign a priority level to an event to prioritize events in casemultiple conditions are satisfied.

At step 826, the process determines whether the condition(s) that bestsatisfies the detection of the one or more of the identified wirelessdevices was performed in the prior condition state. If the processdetermines that the condition(s) that best satisfies the detection ofthe one or more of the identified wireless devices was performed in theprior condition state, then the process terminates. If the condition(s)that best satisfies the detection of the one or more of the identifiedwireless devices was not performed in the prior condition state, theprocess performs the condition(s) that best satisfies the detection ofthe one or more of the identified wireless devices at step 828, with theprocess terminating thereafter. For example, suppose the usersassociated with registered wireless devices A, B, and C are located inresidential location 108 (e.g., family of three watching television) anda person carrying an unknown wireless device approaches the front doorof residential location 108, the process would detect the unknownwireless device and perform the events associated with the detection ofan unknown device at step 817, such as, but not limited to, sending anemail to a specified user. However, the process would not repeat thepreviously performed condition that best satisfies the detection of theregistered wireless devices A, B, and C because the state of theregistered wireless devices have not changed.

Accordingly, the disclosed embodiments provide a system and method formanaging events associated with the detection of wireless devices. Thedisclosed embodiments utilize a residential wireless access point fordetecting the signal transmitted by a wireless device, such as, but notlimited to, a cellular phone. A user configures a wireless devicedetection program to perform specified events in response to thedetection and/or absence of a wireless device. The disclosed embodimentsmay provide home automation functions, home security functions, and/orprovide child monitoring features.

As will be appreciated by one skilled in the art, the disclosedembodiments may be embodied as a system, method, or computer programproduct. Accordingly, the disclosed embodiments may be implementedentirely with hardware or as a software embodiment (including firmware,resident software, micro-code, etc.) or an embodiment combining softwareand hardware aspects that may all generally be referred to herein as a“circuit,” “module” or “system.” Furthermore, the disclosed embodimentsmay take the form of a computer program product embodied in any tangiblemedium of expression having computer-usable program code embodied in themedium.

Computer program code for carrying out operations of the presentinvention may be written in any combination of one or more programminglanguages, including an object oriented programming language, such asJava, Smalltalk, C++, or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

The disclosed embodiments described above with reference to flowchartillustrations and/or block diagrams. Each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, may be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide processes for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprise”and/or “comprising,” when used in this specification and/or the claims,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof. The correspondingstructures, materials, acts, and equivalents of all means or step plusfunction elements in the claims below are intended to include anystructure, material, or act for performing the function in combinationwith other claimed elements as specifically claimed. The description ofthe present invention has been presented for purposes of illustrationand description, but is not intended to be exhaustive or limited to theinvention in the form disclosed. Many modifications and variations willbe apparent to those of ordinary skill in the art without departing fromthe scope and spirit of the invention. The embodiment was chosen anddescribed in order to best explain the principles of the invention andthe practical application, and to enable others of ordinary skill in theart to understand the invention for various embodiments with variousmodifications as are suited to the particular use contemplated.

In addition, the flowchart and block diagrams in the figures illustratethe architecture, functionality, and operation of possibleimplementations of systems, methods and computer program productsaccording to various embodiments of the present invention. In thisregard, each block in the flowchart or block diagrams may represent amodule, segment, or portion of code, which may include one or moreexecutable instructions for implementing the specified logicalfunction(s). It should also be noted that, in some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts, or combinations of special purpose hardware andcomputer instructions.

What is claimed is:
 1. A method for performing a user-specified eventcomprising: receiving data from a residential wireless access point;determining from the data, using a processor, whether a first wirelessdevice is detected; determining whether the first wireless device hasdeparted from a signal range of the residential wireless access point bymonitoring the strength of a signal associated with the first wirelessdevice; wherein if the monitored signal strength gradually decreases, itis determined that the first wireless device has departed from thesignal range of the residential access point; wherein if the monitoredsignal strength is constant for a period of time and abruptly ends, itis determined that the first wireless device has not departed from thesignal range of the residential wireless access point; and performing auser-specified departure event in response to identifying the departureof the first wireless device from the signal range of the residentialaccess point.
 2. The method of claim 1, further comprising: storing acondition state associated with the first wireless device being detectedby the residential wireless access point.
 3. The method of claim 2,further comprising: receiving subsequent data from the residentialwireless access point; determining if the condition state associatedwith the first wireless device being detected by the residentialwireless access point has changed; and responsive to the condition statehaving been changed, performing a second user-specified event associatedwith a change in condition state.
 4. The method of claim 1, wherein theuser-specified departure event comprises adjusting a thermostat setting.5. The method of claim 1, wherein the user-specified departure eventincludes transmitting an email message to a specified address.
 6. Themethod of claim 1, wherein the user-specified departure event comprisestransmitting a text message to a specified number.
 7. The method ofclaim 1, wherein the user-specified departure event comprises turningoff audio or video equipment.
 8. The method of claim 1, wherein theuser-specified departure event comprises turning on or off one or morelights.
 9. The method of claim 1, wherein the user-specified departureevent comprises turning on an alarm system.
 10. The method of claim 1,wherein the user-specified departure event is time dependent.
 11. Ancomputer system, comprising: a data bus system; memory coupled to thedata bus system, wherein the memory includes computer usable programcode; a network communication device coupled to the data bus forreceiving data from a residential wireless access point over a networkconnection; a processing unit coupled to the data bus system, whereinthe processing unit executes the computer usable program code to:receive data from a residential wireless access point; determine fromthe data whether a first wireless device is detected; determine whetherthe first wireless device has departed from a signal range of theresidential wireless access point by monitoring the strength of a signalassociated with the first wireless device; wherein if the monitoredsignal strength gradually decreases, it is determined that the firstwireless device has departed from the signal range of the residentialaccess point; wherein if the monitored signal strength is constant for aperiod of time and abruptly ends, it is determined that the firstwireless device has not departed from the signal range of theresidential wireless access point; and perform a user-specifieddeparture event in response to identifying the departure of the firstwireless device from the signal range of the residential access point.12. The computer system of claim 11, wherein the processing unit furtherexecutes the computer usable program code to: store a condition stateassociated with the first wireless device being detected by theresidential wireless access point.
 13. The computer system of claim 12,wherein the processing unit further executes the computer usable programcode to: receive subsequent data from the residential wireless accesspoint; determine if the condition state associated with the firstwireless device being detected by the residential wireless access pointhas changed; and responsive to the condition state having been changed,perform a second user-specified event associated with a change incondition state.
 14. The computer system of claim 11, wherein theuser-specified departure event comprises adjusting a thermostat setting.15. The computer system of claim 11, wherein the user-specifieddeparture event includes transmitting an email message to a specifiedaddress.
 16. The computer system of claim 11, wherein the user-specifieddeparture event comprises transmitting a text message to a specifiednumber.
 17. The computer system of claim 11, wherein the user-specifieddeparture event comprises turning off audio or video equipment.
 18. Thecomputer system of claim 11, wherein the user-specified departure eventcomprises turning on or off one or more lights.
 19. The computer systemof claim 11, wherein the user-specified departure event comprisesturning on an alarm system.
 20. The computer system of claim 11, whereinthe user-specified departure event is time dependent.